﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJD.Comunes.Entidades;
using MJD.Transaccional.AccesoDatos.Fabricas;
using MJD.Transaccional.Comandos.Interfaces;

namespace MJD.Transaccional.Comandos.Implementacion.ComandosCausas
{
    /// <summary>
    /// Comando que consulta todas las causas de un ramo
    /// </summary>
    public class ObtenerCausas:IComando<IList<Causa>>
    {
        /// <summary> datos del ramo a consultar las causas </summary>
        private readonly Ramo _ramo;
        
        /// <summary> constructor de la clase </summary>
        /// <param name="ramo">datos del ramo a consultar las causas</param>
        public ObtenerCausas(Ramo ramo)
        {
            _ramo = ramo;
        }

        #region Implementation

        /// <summary> Metodo que realiza la accion del comando </summary>
        /// <returns>lista de causas</returns>
        public IList<Causa> Ejecutar()
        {
            return FabricaDao.ObtenerManejador().ObtenerDaoCausa().ObtenerCausas(_ramo);
        }

        #endregion
    }
}
